/**
 * @apiDefine goods 商品
 * @apiHeader {String} token 用户登录获取的token
 */


/**
 * @api {POST} /goods_list 商品列表
 * @apiSampleRequest /goods_list
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {Number} page 页码
 * @apiParam {Number} size 每页数量
 * @apiParam {String} [goods_name] 商品名称
 * @apiParam {Number} [class_id] 分类ID
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0,
 *     "data": [
 *         {
 *             "id": 4, // 商品ID
 *             "class_id": 5, // 分类ID
 *             "goods_name": "苹果", // 商品名称
 *             "usdt_price": 198.0, // 售价
 *             "scount": 73, // 库存
 *             "state": 1, // 审核状态，0：审核中，1审核通过，2：审核拒绝
 *             "is_community": 0, // 是否是社区超市商品 0 否 1 是
 *             "is_warehouse": 0, // 是否是仓储商品 0 否 1 是
 *             "is_ban": 0, // 0 上架 1 下架
 *             "create_time": "2021-05-13T17:13:29Z", // 创建时间
 *             "device_goods_id": "1_6932046110013",
 *             "cost_price": "0.00",
 *             "member_price": "0.00",
 *             "goods_img": ""
 *         },
 *     ],
 *     "total": 37,
 *     "page": 1,
 *     "size": 10
 * }
 */


/**
 * @api {POST} /goods 商品详情
 * @apiSampleRequest /goods
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {Number} id 商品ID
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0,
 *     "data": {
 *         "id": 1459,
 *         "class_id": 1, // 商品分类ID,
 *         "class_name": "箱包", // 商品分
 *         "goods_name": "原木纸巾", // 商品名称
 *         "usdt_price": 5.0, // 商品售价
 *         "scount": 2, // 库存
 *         "is_ban": 0, // 0 上架 1 下架
 *         "is_delete": 0,
 *         "create_time": "2021-10-11T10:53:19Z",
 *         "state": 0,
 *         "shoper_id": 1, // 店铺ID
 *         "is_community": 1, // 是否是社区超市商品 0 否 1 是
 *         "point_ratio": null, // 积分比例、会员比例
 *         "is_warehouse": 1, // 是否是仓储商品 0 否 1 是
 *         "device_goods_id": "1_6901668053889",
 *         "cost_price": "3.00", // 成本价格
 *         "member_price": "0.00", // 会员价格
 *         "barcode": "6901668053889", // 条形码
 *         "ver": 0,
 *         "unit": "", // 单位
 *         "guardian_ratio": 0.16, // 守护者获得购物券比例
 *         "product_date": null, // 生产日期 YYYY-DD-MM
 *         "guarantee_period": null, // 保持期
 *         "guarantee_type": 1, // 保质期类型 1 日 2 月 3 年
 *         "goods_img": "a.jpg", // 商品图片
 *         "goods_content_img": "b.jpg" // 商品详情图片
 *         "product_date": "2021-12-31" // 生产日期
 *     }
 * }
 */


/**
 * @api {POST} /query_goods 通过条形码/拼音码/商品名模糊查询商品
 * @apiSampleRequest /query_goods
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {String} keyword 关键字，可以是 条形码/拼音码/商品名
 * @apiParam {Number} [keyword_type=None] 关键字类型， 1条形码（精确模糊），其它值模糊查询
 * @apiParam {Number} page 页码
 * @apiParam {Number} size 每页数量
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 店内商品存在时:
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0,
 *     "data": [
 *         {
 *             "id": 152, // 商品ID
 *             "shop_id": 1, // 店铺ID
 *             "barcode": "6901668053807", // 条形码
 *             "class_id": 1, // 分类ID
 *             "goods_name": "骆驼一件", // 商品名称
 *             "usdt_price": 10.0, // 售价
 *             "scount": 18, // 库存
 *             "is_ban": 0, // 0 上架 1 下架
 *             "is_half": 0, // 商品是否半价，0否，1商品半价，2店铺半价
 *             "create_time": "2021-09-27T09:14:54Z", // 创建时间
 *             "state": 0, // 审核状态，0：审核中，1审核通过，2：审核拒绝
 *             "is_community": 1, // 是否是社区超市商品 0 否 1 是
 *             "point_ratio": 10.0,
 *             "is_warehouse": 1, // 是否是仓储商品 0 否 1 是
 *             "cost_price": "10.00", // 成本价格
 *             "member_price": "0.00", // 会员价格
 *             "py_code": "ltj", // 拼音码
 *             "unit": "1",
 *             "spec_typ": 0,
 *             "scale_no": "",
 *             "class_name": "箱包", // 分类名称
 *             "risk_grade": 1, // 1为烟酒
 *             "product_date": null, // 生产日期 YYYY-DD-MM
 *             "guarantee_period": null, // 保持期
 *             "guarantee_type": 1, // 保质期类型 1 日 2 月 3 年
 *             "goods_img": "",
 *             "goods_content_img": ""
 *         }
 *     ],
 *     "total": 37,
 *     "page": 1,
 *     "size": 10,
 *     "weight": "0.575", // 从条形码解析出的重量，单位千克
 *     "shop_is_half": 1 // 店铺商品全部半价
 * }
 * @apiSuccessExample {json} 店内商品不存在时:
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0,
 *     "data": [],
 *     "total": 0,
 *     "page": 1,
 *     "size": 15,
 *     "weight": "89.826",
 *     "barcode_data": { // 条形码数据
 *         "barcode": "1650667898268",
 *         "goods_name": "A店铺商品",
 *         "price": "10",
 *         "unit": "吨",
 *         "img": "http://shop365.oss-cn-guangzhou.aliyuncs.com/20211115174414TLE.png",
 *         "content_img": "http://shop365.oss-cn-guangzhou.aliyuncs.com/20211115174414TLE.png",
 *     }
 * }
 */


/**
 * @api {POST} /v2/query_goods 关键字查询商品 V2
 * @apiSampleRequest /v2/query_goods
 * @apiDescription <p>收银系统查询商品，如keyword是数值，并且长度大于5，按条形码精确查询，否则按“条形码/拼音码/商品名”模糊查询。</p>
 * <p>通过条形码精确查询，不返回封面等字段</p>
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {String} keyword 关键字，可以是 条形码/拼音码/商品名
 * @apiParam {Number} [keyword_type=None] 关键字类型， 1条形码（精确模糊），其它值模糊查询
 * @apiParam {Number} [is_fast_food=0] 是否快餐， 0否，1是
 * @apiParam {Number} [class_id=0] 商品分类
 * @apiParam {Number} page 页码
 * @apiParam {Number} size 每页数量
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0,
 *     "data": [
 *         {
 *             "barcode": "6901668053807", // 条形码
 *             "id": 152, // 商品ID
 *             "class_id": 1, // 分类ID
 *             "goods_name": "骆驼一件", // 商品名称
 *             "usdt_price": 10.0, // 售价
 *             "scount": 18, // 库存
 *             "cost_price": "10.00", // 成本价格
 *             "member_price": "0.00", // 会员价格
 *             "unit": "1",
 *             "spec_typ": 0,
 *             "scale_no": "",
 *             "class_name": "手拎包", // 分类名称
 *             "is_half": 0, // 商品是否半价，0否，1商品半价，2店铺半价
 *             "risk_grade": 1 // 1为烟酒
 *         }
 *     ],
 *     "total": 37,
 *     "page": 1,
 *     "size": 10,
 *     "weight": "0.575", // 从条形码解析出的重量，单位千克
 *     "shop_is_half": 1 // 店铺商品全部半价
 * }
 */


/**
 * @api {POST} /add_goods 添加商品
 * @apiSampleRequest /add_goods
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {String} barcode 条形码
 * @apiParam {Number} class_id 商品分类
 * @apiParam {String} goods_name 商品名称
 * @apiParam {String} usdt_price 商品价格
 * @apiParam {String} cost_price 成本价格
 * @apiParam {String} member_price 会员价格
 * @apiParam {Number} [scount=1] 库存、数量，spec_typ=1时，单位为千克
 * @apiParam {Number} py_code 拼音码
 * @apiParam {String} unit 单位，spec_typ=1时，单位默认千克
 * @apiParam {String} img 商品图片
 * @apiParam {String} content_img 商品详情图片
 * @apiParam {String} point_ratio 积分比例、会员比例
 * @apiParam {String} [guardian_ratio=None] 守护者获得购物券比例，默认point_ratio+0.01
 * @apiParam {Number} [spec_typ=None] 计价方式 0计数，1称重
 * @apiParam {Number} [scale_no=None] 秤码，spec_typ=1是，秤码必须
 * @apiParam {Number} [product_date=''] 生产日期，默认为当前日期前一天
 * @apiParam {Number} guarantee_period 保持期
 * @apiParam {Number} guarantee_type 保质期类型 1 日 2 月 3 年
 * @apiParam {Number} [is_fast_food=0] 是否快餐， 0否，1是
 * @apiParam {Number} [is_half=0] 第二件半价， 0否，1是
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0
 *         "product_date": "2021-12-31" // 生产日期
 * }
 */


/**
 * @api {POST} /add_barcode 添加商品条形码，一件商品有多个条形码
 * @apiSampleRequest /add_barcode
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {String} barcode 条形码
 * @apiParam {Number} goods_id 商品ID
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0
 * }
 */


/**
 * @api {POST} /update_goods 更新商品
 * @apiSampleRequest /update_goods
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {Number} id 商品ID
 * @apiParam {String} barcode 条形码
 * @apiParam {Number} class_id 商品分类
 * @apiParam {String} goods_name 商品名称
 * @apiParam {String} usdt_price 商品价格
 * @apiParam {String} cost_price 成本价格
 * @apiParam {String} member_price 会员价格
 * @apiParam {Number} [scount=1] 数量
 * @apiParam {Number} py_code 拼音码
 * @apiParam {String} unit 单位
 * @apiParam {String} point_ratio 积分比例、会员比例
 * @apiParam {String} guardian_ratio 守护者获得购物券比例
 * @apiParam {Number} [product_date] 生产日期，默认为当前日期前一天
 * @apiParam {Number} [guarantee_period] 保持期
 * @apiParam {Number} [guarantee_type] 保质期类型 1 日 2 月 3 年
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0
 * }
 */


/**
 * @api {POST} /del_goods 删除商品
 * @apiSampleRequest /del_goods
 * @apiGroup goods
 * @apiUse goods
 * @apiParam {Number} id 商品ID
 * @apiSuccess {Object} /data 数据
 * @apiSuccessExample {json} 成功响应：
 * HTTP/1.1 200 OK
 * {
 *     "errcode": 0
 * }
 */
